﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO;
using Entidad;
using System.Data;

public partial class InformeEjemplaresRestaurados : System.Web.UI.Page
{
    InformeRestauracionInterface informeDAO;
    static DataView dvInforme;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            informeDAO = new InformeQueryDAO();
            CargarComboRestauradores();
            CargarGrillaEjemplares();
            rvFechaDesde.MaximumValue = DateTime.Now.Date.ToString("dd/MM/yyyy");
            rvFechaHasta.MaximumValue = DateTime.Now.Date.ToString("dd/MM/yyyy");
            rvFechaHasta.MinimumValue = DateTime.Now.AddYears(-17).ToString("dd/MM/yyyy");
            rvFechaDesde.MinimumValue = DateTime.Now.AddYears(-17).ToString("dd/MM/yyyy");
        }
    }
    protected void CargarComboRestauradores()
    {
        informeDAO = new RestauradorDAO();
        cmbRestauradores.DataSource = informeDAO.BuscarRestauradores(null);
        cmbRestauradores.DataValueField = "id_Restaurador";
        cmbRestauradores.DataTextField = "datos";
        cmbRestauradores.DataBind();
        cmbRestauradores.Items.Insert(0,new ListItem("Sin Seleccion"));
        cmbRestauradores.SelectedIndex = 0;
    }
    protected void CargarGrillaEjemplares()
    {
        informeDAO = new InformeQueryDAO();
        dvInforme = informeDAO.ObtenerInforme();
        grvRestauraciones.DataSource = dvInforme;
        grvRestauraciones.DataBind();
      
    }
    protected void btn_buscar_Click(object sender, EventArgs e)
    {
        informeDAO = new InformeQueryDAO();
        if (!String.IsNullOrEmpty(txtFechaDesde.Text))
        {
            if (String.IsNullOrEmpty(txtFechaHasta.Text))
            {
                txtFechaHasta.Text = DateTime.Now.ToShortDateString();
            }
        }
        if (!String.IsNullOrEmpty(txtFechaHasta.Text) && String.IsNullOrEmpty(txtFechaDesde.Text))
        {
            txtFechaDesde.Text = informeDAO.OtenerFechaMasAntigua();
        }
        if (IsValid)
        {
            String filtro = "";
            if (cmbRestauradores.SelectedIndex != 0)
            {
                filtro += "ror.id_Restaurador = " + int.Parse(cmbRestauradores.SelectedItem.Value.ToString());
                if (!string.IsNullOrEmpty(txtFechaDesde.Text) || !string.IsNullOrEmpty(txtCodLibro.Text))
                {
                    filtro += " AND ";
                }
            }
            if (!string.IsNullOrEmpty(txtFechaDesde.Text))
            {
                filtro += "FechaEntrega >= '" + txtFechaDesde.Text + "' AND FechaEntrega <= '" + txtFechaHasta.Text + "'";
                if (!string.IsNullOrEmpty(txtCodLibro.Text))
                {
                    filtro += " AND ";
                }
            }
            if (!string.IsNullOrEmpty(txtCodLibro.Text))
            {
                filtro += "Codigo LIKE '%" + txtCodLibro.Text + "%'";
            }
            if (string.IsNullOrEmpty(filtro))
            {
                dvInforme = informeDAO.ObtenerInforme(null);
            }
            else
            {
                dvInforme = informeDAO.ObtenerInforme(" AND " + filtro);
            }
            if (dvInforme.Count == 0)
            {
                result.Visible = true;
            }
            else
            {
                result.Visible = false;
                grvRestauraciones.DataSource = dvInforme;
            }
            grvRestauraciones.DataBind();
        }
    }
    protected void grvRestauraciones_Sorting(object sender, GridViewSortEventArgs e)
    {
        dvInforme.Sort = e.SortExpression;
        grvRestauraciones.DataSource = dvInforme;
        grvRestauraciones.DataBind();
    }
    protected void grvRestauraciones_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView gv = (GridView)sender;
        gv.PageIndex = e.NewPageIndex;
        grvRestauraciones.DataSource = dvInforme;
        grvRestauraciones.DataBind();
    }
}